/**
 * 存储登录人信息 (token)
*/

import { userAccountLogin } from '@/api/user'
// 用户状态
export default {
  namespaced: true, // 命名空间开启，避免定义变量名冲突
  // state定义写成函数，避免引用问题
  state: () => ({
    profile: {
      // 当前登录人信息
      id: '',
      avatar: '',
      nickname: '',
      account: '',
      mobile: '',
      token: ''
    }
  }),

  mutations: {
    /**
     *
     * @param {*} state 当前模块数据
     * @param {*} payload 传递修改的数据
     */
    setToken (state, payload) {
      state.profile = payload
    },

    // 删除登录人信息 =》 删除内存 + 本地(localStorage)
    delToken (state) {
      state.profile = {}
    }
  },
  actions: {

    // 获取后台当前登录人数据
    async getProfileAction ({ commit }, payload) {
      const { result } = await userAccountLogin(payload)
      // console.log(result)
      commit('setToken', result)
    },

    // 退出登录删除登录人相关信息 (账号信息 + 购物车数据)
    logoutAction ({ commit }) {
      commit('delToken')
      // { root: true } 站到上帝视角/根store位置  退出登录人信息后删除所有token登录人信息
      commit('cart/setCartList', [], { root: true })
    }
  }
}
